package ar.uba.fi.taller2.cmmiassistant.seguridad;

import java.io.Serializable;
import java.util.Set;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * Identidad de seguridad.
 * 
 */
@XStreamAlias ( "Usuarios" )
public class Usuario implements Serializable {

    private static final long serialVersionUID = -2661247747033796536L;

    private Integer idUsuario;
    private String nombre;
    private String password;

    /**
     * Perfiles asociados a un Usuario.
     */
    private Set<PerfilSeguridad> perfilesSeguridad;

    public Usuario() {

    }

    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Set<PerfilSeguridad> getPerfilesSeguridad() {
        return this.perfilesSeguridad;
    }

    public void setPerfilesSeguridad(Set<PerfilSeguridad> perfilesSeguridad) {
        this.perfilesSeguridad = perfilesSeguridad;
    }

    @Override
    public int hashCode() {
        return this.getIdUsuario() != null ? this.getIdUsuario().hashCode()
                : null;
    }

    @Override
    public boolean equals(Object obj) {

        boolean iguales = false;
        if ((obj != null) && (obj instanceof Usuario)) {

            Usuario castObj = (Usuario) obj;
            iguales = this.getIdUsuario().equals(castObj.getIdUsuario());
        }

        return iguales;
    }

    public Integer getIdUsuario() {
        return this.idUsuario;
    }

    public void setIdUsuario(Integer idUsuario) {
        this.idUsuario = idUsuario;
    }

}